import java.util.Scanner;
import java.util.InputMismatchException;

class Main{

    public static void adicionarDocumento(Fila fila){
	System.out.println();
	System.out.print("Nome do documento: ");
	Scanner scanner = new Scanner(System.in); 
	String nome = scanner.nextLine();

	int prioridade = 0;
	boolean b = true; 
	while(b){
	    System.out.println("Prioridade: (1) - Baixa, (2) - Média, (3) - Alta");
	    try {
		scanner = new Scanner(System.in); 
		prioridade = scanner.nextInt();
	    } catch (InputMismatchException e){
		//
	    } finally {
		if(prioridade == 1 || prioridade == 2 || prioridade == 3){
		    b = false; 
		} else {
		    System.err.println("Prioridade inválida!");
		}
	    }
	}
	fila.adicionarDocumento(new Documento(nome, prioridade));
    }

    public static void imprimir(Fila fila){
	System.out.println();
	if(fila.estaVazia())
	    System.err.println("A fila está vazia");
	else
	    while(!fila.estaVazia()){
		Documento tmp = fila.imprimir();
		System.out.println(tmp.nome() + " - prioridade: " + tmp.prioridade()); 
	    }
    }

    public static void main(String[] args){
	Fila fila = new Fila();
	Scanner scanner;

	while(true){
	    System.out.println(); 
	    System.out.println("(1) - Adicionar documento");
	    System.out.println("(2) - Imprimir");
	    System.out.println("(3) - Sair");
	    int opt = 0;
	    try{
		scanner = new Scanner(System.in);
		opt = scanner.nextInt();
	    } catch (InputMismatchException e) {
		// 
	    } finally{
		if(opt != 1 && opt != 2 && opt != 3)
		    System.err.println("\nOpção inválida"); 
	    }
	    switch(opt){
	    case 1:
		adicionarDocumento(fila); 
		break; 
	    case 2:
		imprimir(fila); 
		break; 
	    case 3:
		return; 
	    }
	}
	
	
    }
}
